This invention relates generally to programmable logic controllers (PLCs) and, more particularly, to an algorithm for maintaining a PLC revision history.
Known programmable logic controllers are extensively used in process control applications. As a part of process control, the programmable logic controller is used to monitor input signals from a variety of inputs which report events and conditions occurring in a controlled process. For example, a PLC can monitor such input conditions as motor speed, temperature, pressure, volumetric flow, as well as other conditions. A user program is stored in a memory within the PLC to instruct the PLC what actions to take upon encountering particular input signals or conditions. In response to the input signals, the PLC derives and generates output signals which are transmitted to various output devices to control the process. For example, based on the input signals, the PLC issues output signals to speed up or slow down a motor, open or close a relay, raise or lower temperature or adjust pressure as well as many possible control functions.
A typical PLC includes at least one Input/Output (I/O) module. Each I/O module has a plurality of input/output points. The I/O modules are coupled through an interface bus, for example via a backplane, to a processor in the PLC. The particular processor used in the PLC together with the particular choice of I/O modules installed are often referred to as the hardware configuration of the PLC. The hardware configuration also includes the particular addresses which the I/O modules employ.
Many revisions and changes typically are made to the PLC during product development and throughout the life cycle of the product. These changes are the result of corrections to the user program, modifications related to the input/output signals and replacement of the I/O modules. Each change, however, creates the possibility of altering the control process. As a result, in certain applications, each alteration is required to be recorded and tracked. For example, some regulatory bodies, e.g., the Food and Drug Administration (FDA), require the tracking of changes made to the PLC system. Customers also sometimes require tracking field changes made to the PLC by end users. Therefore, tracking of these changes and the ability to reproduce a previous configuration at will is critical to successful project management.
It is desirable to provide apparatus and methods for creating and maintaining a history log indicative of changes made to the PLC user program and the PLC hardware configuration. It also would be desirable to automatically detect a change in the configuration and modify the history log to reflect the change.
These and other objects may be attained by a system which facilitates maintaining a history of changes to a PLC user program and to PLC hardware configuration. More particularly and in one embodiment, the system detects changes in the PLC user program and/or in the PLC hardware configuration. If a change is detected, information is gathered that reflects the name of or identification number of the person making the change, the time of the change, whether the user program or hardware configuration, or both, are being changed, and comment information. This information is stored in the PLC memory as a history log.
In one embodiment, the history log includes information from the previous twenty changes. If inadequate space exists to store the latest revision in the history log, the oldest change information is deleted and the latest change information is added.
The revision history system described above maintains a history log indicative of revisions made to the PLC control program and the hardware configuration. The system also maintains specific information related to the revision.